#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
流程图识别程序交互式运行脚本
"""

import os
import sys
from flowchart_recognizer import FlowchartRecognizer

def main():
    """主函数"""
    print("=== 流程图识别程序交互式运行脚本 ===")
    
    # 根据您的安装路径，在此处配置Tesseract
    tesseract_path = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

    # 检查配置的Tesseract路径是否有效
    if not os.path.exists(tesseract_path):
        print(f"⚠️ Tesseract路径配置无效: {tesseract_path}")
        print("   文本识别功能将不可用，请检查路径是否正确。")
        tesseract_path = None
    else:
        print(f"✅ Tesseract已配置路径: {tesseract_path}")

    # 1. 获取用户输入的图片路径
    image_path = input("请输入流程图图片的完整路径: ").strip()

    # 2. 验证输入路径
    if not image_path:
        print("❌ 输入路径不能为空！")
        return

    if not os.path.exists(image_path):
        print(f"❌ 错误: 文件不存在 -> {image_path}")
        return

    supported_formats = ['.jpg', '.jpeg', '.png', '.bmp']
    file_ext = os.path.splitext(image_path)[1].lower()
    if file_ext not in supported_formats:
        print(f"❌ 错误: 不支持的文件格式: {file_ext}")
        print(f"   支持的格式: {', '.join(supported_formats)}")
        return

    # 3. 设置输出目录
    output_dir = "output"
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
        print(f"创建输出目录: {output_dir}")

    # 4. 初始化并运行识别器
    print("\n1. 初始化流程图识别器...")
    try:
        recognizer = FlowchartRecognizer(tesseract_path)
    except Exception as e:
        print(f"❌ 初始化识别器失败: {e}")
        return
    
    print("2. 开始处理流程图...")
    try:
        success = recognizer.process_flowchart(image_path, output_dir)
        
        if success:
            output_file = os.path.join(output_dir, os.path.basename(image_path).replace(file_ext, '_parsed.json'))
            print(f"\n✅ 处理成功！输出文件已保存到: {output_file}")
        else:
            print("\n❌ 处理失败！请检查日志文件 flowchart_recognizer.log 获取详细信息。")
            
    except Exception as e:
        print(f"\n❌ 处理过程中发生严重错误: {e}")

if __name__ == "__main__":
    main() 